package org.example.shop.jults;

import org.mindrot.jbcrypt.BCrypt;

/**
 * 密码加密工具类
 */
public class PasswordUtils {

    /**
     * 加密密码
     * @param plainPassword 明文密码
     * @return 加密后的哈希密码
     */
    public static String hashPassword(String plainPassword) {
        if (plainPassword == null || plainPassword.trim().isEmpty()) {
            throw new IllegalArgumentException("密码不能为空");
        }
        return BCrypt.hashpw(plainPassword, BCrypt.gensalt());
    }

    /**
     * 验证密码
     * @param plainPassword 用户输入的明文密码
     * @param hashedPassword 数据库中存储的哈希密码
     * @return 是否匹配
     */
    public static boolean checkPassword(String plainPassword, String hashedPassword) {
        if (plainPassword == null || plainPassword.trim().isEmpty()) {
            return false;
        }
        if (hashedPassword == null || hashedPassword.trim().isEmpty()) {
            return false;
        }
        return BCrypt.checkpw(plainPassword, hashedPassword);
    }
}